Cyber security of applications executing on commercial computing systems has been a growing concern. Many approaches have been tried with marginal success, often employing a strategy referred to as “perimeter protection, patch and pray” in which specific countermeasures are deployed to address known individual or class attacks. Countermeasures may include: Hardware roots of trust like Trusted Platform Module (TPM); and software security components like secure boot, authenticated Basic Input/Output System (BIOS), hypervisors, Virtual Machines (VM) and trusted operating systems.
FIG. 1 shows exemplar categories of conventional attack vectors targeting an application executing within a computing system. These attacks may attempt to read, infer, and/or modify the application's instructions and/or data existing within computing system memory resources, such as, for example, system memory, cache, and/or execution engine(s) (the instruction pipeline and the mechanisms on the processor involved in executing those instructions).
The first category of conventional attack vectors covers attacks launched from within an application's execution space that exploit the integration of “other” code (e.g., application libraries and the more privileged operating system libraries) within the application's software itself. An application library executing from within an application's execution space may launch an attack 101 on the instructions and/or data of that application by virtue of their shared resources. Furthermore, if a malicious operating system library is hosted within the application's execution space, then the operating system library may be exploited to directly attack 103 that application's instructions and/or data.
Another category of conventional attack vectors covers attacks launched from outside an application's execution space that exploit defects and weaknesses in common resources on the host computing system. For instance, defects in shared libraries (often operating system libraries) may be exploited 105 to gain access to an application's instructions and/or data. In a second type of attack 107 within this category, a malicious application may indirectly attack a targeted application by exploiting defects in privileged software like the operating system, a hypervisor, or a microvisor. In a third type of attack 109 within this category, a malicious application may indirectly attack a targeted application by exploiting weaknesses in the computing system mechanisms (e.g., overdriving memory access to cause bit flips in adjoining spaces).
Another category of conventional attack vectors covers attacks launched from within privileged resources. For instance, malicious software operating from within this space may attack 111 a targeted application directly by virtue of its intrinsic read/modify privilege.
A final exemplar category of conventional attack vectors covers attacks launched from outside the system. A common type of attack within this category may target applications 113 through privileged devices connected to accessible I/O mechanisms. Additionally, a malicious agent with sufficient physical access to the computing system mechanisms may directly attack 115 an applications instruction or private data space.